1. Field
The disclosure relates to the prioritization of interrupts in a storage controller based on interrupt control directives received from hosts.
2. Background
Certain information technology storage systems may include a storage controller that is coupled to a plurality of hosts and a plurality of storage devices. The storage controller controls the access of the hosts to the plurality of storage devices by maintaining logical locks corresponding to the storage devices. When a host sends a command to the storage controller to access a storage device, the storage controller determines whether the storage device is already locked for access by another host. If so, the storage controller may make the host wait for access to the storage device. In order to indicate status to the host, the storage controller may send an interrupt in response to the command, wherein the interrupt may be referred to as an “interrupt responsive to an access request” or an “attention interrupt”. For example, if the storage controller determines that the storage device is no longer locked for access by another host, the storage controller may determine which of a plurality of waiting hosts may now have access to the storage device. Then the storage controller may send the interrupt responsive to the access request to the determined host, where the interrupt responsive to the access request indicates to the determined host that the access to the storage device may be performed by the determined host. Additionally, if the storage controller determines that the storage device is locked for access by another host then the storage controller may indicate to the host that the command to set a lock was not successful as the response to the command.
In certain systems, when the host attempts to secure a lock via a host command, the response from the storage controller to the host command indicates to the host that the host got the lock. If the host cannot get the lock, the response from the storage controller to the host command indicates to the host that the host did not get the lock. While the host is waiting for the lock the host could not get, the state of the lock may change and the storage controller may raise an attention interrupt for that host to communicate to the host that the lock has been granted. On receiving the attention interrupt, the host may send a “read message” command, and in response may be provided a “lock granted” message. In addition, a host that holds a lock when another host cannot get the lock may be provided with a “contention” attention if the host that holds the lock had requested that the host should be informed of any potential contention attentions for the lock, where the contention attention may be provided via the attention interrupt and read message mechanisms.
In certain situations, the storage controller may asynchronously send other interrupts to the plurality of hosts. These other interrupts may be referred to as unsolicited interrupts as they are generated by the storage controller without being explicitly requested by the hosts. For example, the storage controller may send state change interrupts to the hosts. Other unsolicited interrupts, such as, interrupts that indicate the status of copy operations being performed by the storage controller may also be sent by the storage controller to the hosts.